package com.jiepu.daily.corejava.advanceed.part2.day0722;

import java.util.Comparator;
import java.util.Set;

/**
 * @Description:
 * @author: xinjie.txt
 * @date: 2020/7/22  17:48
 */
public class TreeSet {
	public static void main(String[] args) {
		Set<Integer> set = new java.util.TreeSet<>(new Comparator<Integer>() {
			@Override
			public int compare(Integer i1, Integer i2) {
				// 第一：先考虑i1和i2的奇偶性
				// 第二：再考虑i1和i2的大小

				// i1为奇数  i2为奇数		返回：i1 - i2
				// i1为偶数  i2为偶数		返回：i2 - i1
				// i1为奇数  i2为偶数		返回：-1
				// i1为偶数  i2为奇数		返回：+1
				// 【思考】如何让下列代码简化？
				if ((i1 & 1) == 1 && (i2 & 1) == 1) {
					return i1 - i2;
				} else if ((i1 & 1) == 0 && (i2 & 1) == 0) {
					return i2 - i1;
				} else if ((i1 & 1) == 1 && (i2 & 1) == 0) {
					return -1;
				} else {
					return +1;
				}
			}
		});
		for (int i = 1; i <= 10; i++) {
			set.add(i);
		}

		// 1 3 5 7 9 10 8 6 4 2
		set.forEach(x -> System.out.print(x + " "));

	}// main
}
